層級的概念是,個別層級中有自己的服務,個別執行特定的動作已達成目標,而傳遞下去的層級中,是依賴於上一層的服務,舉例來說的話,買票之後才能上火車,第一層的服務為窗口買票,第二層為上車的動作,若第一層沒買票的話,則第二層便無法實現。
從上到下的五層順序分別為 Application Layer
、Transport Layer
、Network Layer
、Link
、Physical
應用層是最接近web app的,此層的協定包含常見Http
- 提供向瀏覽器發出request & transferSMTP
- 提供transferemail
訊息FTP
- 提供檔案的傳輸協定DNS
- 提供轉換網址到network address
應用層協定分布於各個end system上,各個end system透過傳輸層提供的protocol去交換packet。
主要將應用層傳遞下來的封包,透過TCP/UDP協定傳送,在此處也會在packet上加上header information,包含了允許封包在receiver那邊可以往上丟回application layer
,以及errr-detection bits
讓receiver知道message是否在route理被動過手腳
TCP
- 提供messages
的傳送以及flow control,也提供將packet
切成segment
,以及packet
塞車的處理機制UDP
- 提供了當無網路狀態時web app的service
負責整個封包傳遞流程的datagrams
,主要為IP protocol
,定義了datagrams
的區域以及end system & router如何在這些fields做行為,特別注意到IP protocol
只有唯一一個,所有Internet component
一定都得遵守,同時此層也包含許多routing protocols
。
將packet
從node中運輸依賴的是link layer
的服務,負責傳送network層的datagram到下一個node節點。此服務依賴於link-layer protocol
,常見的link-layer protocol為以下Ethernet Wifi DOCSIS
等等,同一組datagram
可能會在不同的Route被不同的協定服務,通常在link-layer
的packet
又稱為frames
就幾乎是實體線路的範圍了,在此不做贅述
封包在傳遞的過程中,所經過的layer並不相同,如下圖所示,在link-layer switch以及router裡面,packet作用的service在後面三層,而在end system才有到頭兩層,在層數往下的過程中,都會加入header information作為保護的手段,如圖中的Ht、Hn,因此我們可以依圖所例,得知每個層級都會有兩個type of fields,一者為前一層帶下來的packet,一者為每層級的header information。
以一個假設來說,今天A想要寄信到B,首先A手寫的信
,也就是application-layer message
,會先裝到信封袋
中,並寫上B的住址以及姓名
,整個信封袋就是transport-layer segment
,封裝了application-layer message
,接著到郵局之後,經郵局分類放到對應的縣市分類夾
,也就是datagram
他封裝了trsans-layer segment
,接著郵差開始從分類夾中拿出信件
,並對照上面的資訊送到B的家裡
,也就是解封的過程開始,最後B成功收到信上的內容。
由此可見,在每個層級都會在封裝前個層級的封包,這就是封裝的概念。